﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using RosarioFinanzas.ar.com.rofex.ws;
using System.Data;
using System.Web.Services;

namespace Administracion
{
    public partial class DefaultCotizaciones : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var obj = new ROFEXWebService();
            var ds = obj.Productos();
            string str = "";
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                var id = dr["IdProducto"].ToString();
                var Nombre = dr["Nombre"].ToString();
                str += "<li><a href=\"javascript:ROFEXPRODUCTOS('" + id + "');\">" + Nombre + " </a></li>";
                
            }
            ROFEX.InnerHtml = str;
            obj = null;
            var cn = new ClsConeccion();
            cn.Abrir();
            var sqldr = cn.EjecutarSpDataReader("spGetBancosActivas");
            var dt = new DataTable();
            dt.Load(sqldr);
            DDL1.DataSource=dt;
            DDL1.DataTextField="varBanco";
            DDL1.DataValueField="idBanco";
            this.DDL1.DataBind();

            DDL2.DataSource = dt;
            DDL2.DataTextField = "varBanco";
            DDL2.DataValueField = "idBanco";
            this.DDL2.DataBind();

            DDL3.DataSource = dt;
            DDL3.DataTextField = "varBanco";
            DDL3.DataValueField = "idBanco";
            this.DDL3.DataBind();

        }

        [WebMethod]
        public static string IndiceRofex(string idProducto)
        {
            var obj = new ROFEXWebService();
            var ds = obj.MarketData(1,DateTime.Today,DateTime.Today,"",Convert.ToInt32(idProducto));
            string str = "<table height=\"250px\" width=\"500px\"><tr><td class=\"TituloPromedio\">Posición</td><td class=\"TituloPromedio\">Precio</td><td class=\"TituloPromedio\">Ajuste Anterior</td><td class=\"TituloPromedio\">Variación</td><td class=\"TituloPromedio\">Volumen</td><td class=\"TituloPromedio\">Fecha</td></tr>";
            var c = 0;

            DataTable dt = new DataTable();
            dt.Columns.Add("Vencimiento", DateTime.Today.GetType());
            dt.Columns.Add("Posicion", "".GetType());
            dt.Columns.Add("Precio", 2.3.GetType());
            dt.Columns.Add("AjusteAnterior", 2.3.GetType());
            dt.Columns.Add("Variacion", 2.3.GetType());
            dt.Columns.Add("Volumen", 2.3.GetType());

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                dt.Rows.Add(
                    dr["Vencimiento"],
                    dr["Posicion"],
                    ds.Tables[1].Rows[c]["Precio"],
                    ds.Tables[1].Rows[c]["AjusteAnterior"],
                    ds.Tables[1].Rows[c]["Variacion"],
                    ds.Tables[1].Rows[c]["Volumen"]
                    );
                c++;
            }


            IEnumerable<DataRow> query =
             from c1 in dt.AsEnumerable()
             orderby c1.Field<DateTime>("Vencimiento") ascending
             select c1;

            DataTable boundTable = query.CopyToDataTable<DataRow>();
            string Fecha_text = DateTime.Today.ToShortDateString();
            foreach (DataRow dr in boundTable.Rows)
            {
                var Posicion = dr["Posicion"].ToString();
                var Precio = (dr["Precio"].ToString().Length>0)?(Convert.ToDecimal(dr["Precio"].ToString())).ToString("f4"):"---";
                var AjusteAnterior = (dr["AjusteAnterior"].ToString().Length > 0) ? (Convert.ToDecimal(dr["AjusteAnterior"].ToString())).ToString("f2") : "---";
                var Variacion = (dr["Variacion"].ToString().Length > 0) ? (Convert.ToDecimal(dr["Variacion"].ToString())).ToString("f2") + " %" : "---";
                var Volumen = (dr["Volumen"].ToString().Length > 0) ? (Convert.ToDecimal(dr["Volumen"].ToString())/30).ToString("f0")  : "---"; 

                str += "<tr><td class=\"Titulo\">" + Posicion + "</td><td>" + Precio + "</td><td>";
                str += AjusteAnterior + "</td><td>" + Variacion + "</td><td>" + Volumen + "</td>";
                str +="<td class=\"Titulo1\">" + Fecha_text + " </TD></tr>";
                c++;
            }
            str += "</table>";


            return str;
        }
        [WebMethod]
        public static string Historico(string idMoneda,string txtFecha)
        {
            var cn = new ClsConeccion();
            cn.Abrir();
            cn.AgregarParametros("intMoneda", Convert.ToInt32(idMoneda));
            cn.AgregarParametros("datFechaDesde", Convert.ToDateTime(txtFecha + " 00:00:00"));
            cn.AgregarParametros("datFechaHasta", Convert.ToDateTime(txtFecha + " 23:59:59"));
            var sqldr = cn.EjecutarSpDataReader("sp_ADM_COTIZACIONESMONEDAFecha");
            var dt = new DataTable();
            dt.Load(sqldr);

            if (dt.Rows.Count > 0)
            {
                string htmlCabecera = CabeceraMoneda(Convert.ToInt32(idMoneda));
                string htmlCuerpo = CuerpoCotizacion(dt);

                return htmlCabecera + htmlCuerpo;
            }
            else
            {
                string html = "";
                html += "<div><br><div><br><a class=\"bottonLink\"  href=\"javascript:visualizar('div#Historico');\">Cotizaciones anteriores</a>&nbsp;&nbsp; <a class=\"bottonLink\"  href=\"javascript:visualizar('div#Comparar');\">Comparar entidades</a> </div> <br> <div >  <br>";
                html += "NO EXISTEN DATOS PARA ESTE PERIODO </DIV>";
                return html;
            }
        }

        public static string CabeceraMoneda(int _Moneda)
        { 
            string html = "";
            html += "<div><br><div><br><a class=\"bottonLink\"  href=\"javascript:visualizar('div#Historico');\">Cotizaciones anteriores</a>&nbsp;&nbsp; <a class=\"bottonLink\"  href=\"javascript:visualizar('div#Comparar');\">Comparar entidades</a> </div> <br> <div >  <br>";
            html += "<table id=\"Tabla\"><tr id=\"Header\"><td>ENTIDAD</td>";
            var cn = new ClsConeccion();
            cn.Abrir();
            cn.AgregarParametros("idMoneda", _Moneda);
            var sqldr = cn.EjecutarSpDataReader("sp_ADM_GetMoneda");
            var dt = new DataTable();
            dt.Load(sqldr);
            html += "<td>" + dt.Rows[0]["varMoneda"].ToString() +"</td>";
            html += "<td>FECHA Y HORA</td>";
            return html;

        }

        public static string CuerpoCotizacion(DataTable dt)
        { 
            var html = "";
            var Banco_text = "";
            var Sucursal_text = "";
            var Fecha_text = "";
            foreach (DataRow dr in dt.Rows)
            {
                 if (Banco_text !=dr["varBanco"].ToString())
                 {
                    if (Banco_text != "") 
                    {
                        if (Banco_text == "PROMEDIO SIMPLE" || Banco_text == "PROMEDIO  RF") 
                        {
                            html += "<td class=\"TituloPromedio1\">" + Fecha_text + " </TD>";
                        }
                        else
                        {
                            html += "<td class=\"Titulo1\">" + Fecha_text + " </TD>"; 
                        }
                    }
                 }
                Banco_text = dr["varBanco"].ToString();
                Sucursal_text = dr["varSucursal"].ToString();
                if (Banco_text == "PROMEDIO SIMPLE" || Banco_text == "PROMEDIO  RF") 
                {
                    html += "</tr><tr><td class=\"TituloPromedio\">";
                    html += "<a href=\"\" class=\"show-tooltip\" title=\"" + "" + "\"> " + Banco_text + "</a></td>";
                }
                else 
                {
                    html += "</tr><tr><td class=\"Titulo1\">";
                    html += "<a href=\"\" class=\"show-tooltip\" title=\"" + Sucursal_text + "\"> " + Banco_text + "</a></td>";
                }
        
                if (Banco_text == "PROMEDIO SIMPLE" || Banco_text == "PROMEDIO  RF") 
                {
                    html += "<td><table width=\"100%\"><tr><td class=\"TituloPromedio1\">COMPRA</td><td class=\"TituloPromedio1\">VENTA</td></tr>";
                }
                else 
                {
                    html += "<td><table width=\"100%\"><tr><td class=\"Titulo\">COMPRA</td><td class=\"Titulo\">VENTA</td></tr>";
                }
                var monCompra_text = dr["monCompra"].ToString();
                var monVenta_text =dr["monVenta"].ToString() ;
                Fecha_text =dr["Fecha"].ToString();
                html += "<tr><td> " + monCompra_text + "</td><td> " + monVenta_text + "</td></tr></table></td>";
            }
            html += "<td class=\"Titulo1\">" + Fecha_text + " </TD></tr></table></div>";
    //alert(html);
    //$("div#Plantilla").append(html);
            return html;

        }


        [WebMethod]
        public static string Comparar(string idMoneda, string txtFechaDesde, string txtFechaHasta, string Banco1, string Banco2)
        {
            var cn = new ClsConeccion();
            cn.Abrir();
            cn.AgregarParametros("moneda", (idMoneda));
            cn.AgregarParametros("Banco1", varbanco(Convert.ToInt32(Banco1)));
            cn.AgregarParametros("Banco2", varbanco(Convert.ToInt32(Banco2)));
            cn.AgregarParametros("Desde", (FormatoAnsiFecha(txtFechaDesde) + " 00:00:00"));
            cn.AgregarParametros("Hasta", (FormatoAnsiFecha(txtFechaHasta) + " 23:59:59"));

            var sqldr = cn.EjecutarSpDataReader("spGetComparacion");
            var dt = new DataTable();
            dt.Load(sqldr);


            string htmlCuerpo = Comparacion(dt, varbanco(Convert.ToInt32(Banco1)), varbanco(Convert.ToInt32(Banco2)));

            return  htmlCuerpo;
        }

        public static string varbanco(int idbanco)
        {
            var cn = new ClsConeccion();
            cn.Abrir();
            cn.AgregarParametros("idBanco", idbanco);
            var sqldr = cn.EjecutarSpDataReader("sp_ADM_GetBanco");
            var dt = new DataTable();
            dt.Load(sqldr);
            return dt.Rows[0]["varBanco"].ToString();

        }
        public static string FormatoAnsiFecha (string fecha)
        {
            string anio = fecha.Substring(6, 4);
            string mes = fecha.Substring(3, 2);
            string dia = fecha.Substring(0, 2);
            fecha = anio + mes + dia;
            return fecha;

        }
        public static string Comparacion (DataTable dt, string banco1, string banco2)
        {
            var html = "";
          
            html += "<div><br><div><br><a class=\"bottonLink\"  href=\"javascript:visualizar('div#Historico');\">Cotizaciones anteriores</a>&nbsp;&nbsp; <a class=\"bottonLink\"  href=\"javascript:visualizar('div#Comparar');\">Comparar entidades</a> </div> <br> <div >  <br>";
            html += "<table id=\"Tabla\"><tr id=\"Header\"><td>Fecha</td><td colspan=\"2\">" + banco1 + "</td><td colspan=\"2\">" + banco2 + "</td> </tr>";
            html += "<tr id=\"Header\"><td></td><td class=\"TituloPromedio1\">COMPRA</td><td class=\"TituloPromedio1\">VENTA</td><td class=\"TituloPromedio1\">COMPRA</td><td class=\"TituloPromedio1\">VENTA</td></tr>";
                
            foreach (DataRow dr in dt.Rows)
            {
                html += "<tr >";
                html += "<td class=\"Titulo\" >" + dr["Fecha"].ToString() + "</td>";
                html += "<td class=\"Titulo\">" + Convert.ToDouble(dr["Banco1Compra"]).ToString("f4") + "</td>";
                html += "<td class=\"Titulo\">" + Convert.ToDouble(dr["Banco1Venta"]).ToString("f4") + "</td>";
                html += "<td class=\"Titulo\">" + Convert.ToDouble(dr["Banco2Compra"]).ToString("f4") + "</td>";
                html += "<td class=\"Titulo\">" + Convert.ToDouble(dr["Banco2Venta"]).ToString("f4") + "</td>";
                html += "</tr>";
            }
            html += "</table></div>";
            return html;

        }

        protected void txtDesde_TextChanged(object sender, EventArgs e)
        {
            
        }
    }
    
}
